package com.huaxiafinance.management.service.impl;

import com.huaxiafinance.management.dto.request.QueryMessageModelDto;
import com.huaxiafinance.management.mapper.MessageModelMapper;
import com.huaxiafinance.management.model.MessageModel;
import com.huaxiafinance.management.service.MessageModelService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Collections;
import java.util.List;

@Service("messageModelService")
public class MessageModelServiceImpl implements MessageModelService {

	private static final Logger log = Logger.getLogger(MessageModelServiceImpl.class);

	@Autowired
	private MessageModelMapper messageModelMapper;

	@Override
	public List<MessageModel> queryMessageModel(QueryMessageModelDto dto) throws Exception {
		dto.setPage(dto.getPage() * dto.getRows());
		try {
			return messageModelMapper.queryMessageModel(dto);
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		}

		return Collections.emptyList();
	}

	@Override
	public boolean addMessageModel(MessageModel record) throws Exception {
		int i = 0;
    //查询名称是否唯一
		if (messageModelMapper.select(record.getModelName()).size()>0){
			return i>0;
		}
		try {
			i = messageModelMapper.insert(record);
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		}

		return i > 0;
	}

	@Override
	public boolean updateMessageModel(MessageModel record) throws Exception {
		int i = 0;
		if (messageModelMapper.selectById(record.getModelName(),record.getId())!=null){
			return i>0;
		}
		try {
			i = messageModelMapper.updateByPrimaryKey(record);
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		}

		return i > 0;
	}

	@Override
	public MessageModel beforUpdateMessageModel(Integer id) throws Exception {

		try {
			return messageModelMapper.beforUpdateMessageModel(id);
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		}

		return null;
	}

	@Override
	public int countMessageModel(QueryMessageModelDto dto) throws Exception {
		dto.setPage(null);
		try {
			List<MessageModel> list = messageModelMapper.queryMessageModel(dto);
			return list.size();
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		}
		return 0;
	}
}
